# Online Bookmarks 2

## What is it?

Online Bookmarks 2 (OB2) is a server-side PHP program designed as a personal 
online bookmarking system. Have a website that you want to store bookmarks on? 
OB2 is what you're looking for. 

Features:

- One click bookmark add button to browsers toolbar
- Download and display favicons
- Public bookmarks and folders
- Folder structure in arbitrary depth
- Multi-user
- Import/export

## Requirements

- Webserver with PHP >= 4.3.0
- MySQL >= 4.1 or MariaDB

Optionally:

- ImageMagick for favicons

## Setup

### Installation

1. Download OB2 and unpack the tarball in your webservers documentroot directory.
2. Go to http://www.yourserver.com/online-bookmarks/ which will show installation
   instructions if /config/config.php is missing. Delete install.php after setting up.
3. Try logging in!

### Upgrade

1. Move old files
```
mv /path/to/online-bookmarks \
     /path/to/online-bookmarks-backup
```
2. Backup the database
```
mysqldump --user=bookmarkmgr                 \
          --password=password_of_bookmarkmgr \
          bookmarks                          \
          > /some/path/online-bookmarks-backup.sql
```
3. Upgrade; do a regular install, the install script will take note of an existing install.
   Don't forget to copy favicons:
```
cp -a /path/to/online-bookmarks-backup/favicons/* \
        /path/to/online-bookmarks/favicons/
```

### Bookmark any Homepage with one click
Open the "Settings" page in Online-Bookmarks you will find a bookmarklet link 
called bookmark. Drag this link to your browsers "Personal Toolbar" and a 
button with the correct settings will be created. The code beind the button 
is a simple JavaScript line. You can choose between opening the bookmarklet in 
a new window or in the same window.


## History

Online Bookmarks 2 (OB2) is a fork of 
[online-bookmarks](http://www.frech.ch/online-bookmarks/) written by Stefan Frech.

The original source code was stored in CVS but thanks to 
[crap](https://github.com/rcls/crap) it was possible to convert it to Git.

Online-bookmarks was released as [Free Software](https://www.gnu.org/philosophy/free-sw.html)
by Frech under the [GPLv2](http://www.frech.ch/online-bookmarks/GPL.html).
Online Bookmarks 2 will continue to release further changes under GPLv2.

## Why?

Unlike another fork, [openbookmark](https://github.com/blamarche/openbookmark),
OB2 does not aim to overhaul or add 'modern' (read: bloated) javascript libraries.
In addition, the other fork did not convert the CVS repository to Git, effectively
removing the true history of online-bookmarks in their fork.
In addition, openbookmarks uses the term 
["Open Source"](https://www.gnu.org/philosophy/open-source-misses-the-point.html) 
when even the creator of online-bookmarks - Stefan Frech - uses the term 
["Free Software"](https://www.gnu.org/philosophy/free-sw.html),
as well as not adding proper licensing to neither COPYING/LICENSE or source files.

## Attribution

Copyright © 2008 Stefan Frech

Copyright © 2017 Nichlas Severinsen


## Development

Clone this repo and cd into it.

You're gonna need an empty favicon folder, as well as ImageMagick installed, if you've enabled favicon.
In addition you need a config/config.php file, you have to make it yourself. We might consider making
the file ourselves if PHP supports it.

Add `$development = true;` in config/config.php to circumvent the 'you have to remove install.php' message.

Then just run
```
php -S localhost:8000
```

## TODO

- [x] Add COPYING
- [x] Better README
- [ ] CRITICAL - ONGOING - Fix for php7..
- [ ] URGENT - switch md5 out with bcrypt
- [ ] Check for and remove any proprietary parts (probably none)
- [ ] [Proper GPL usage](https://www.gnu.org/licenses/gpl-howto.html)
- [ ] Remove unnecessary Javascript
- [ ] Redesign UI & CSS
- [ ] Add tests (if possible)
- [ ] Proper commenting and docstrings
- [ ] Decide on (small) css framework to replace old styles, alternatives:
  - [Bijou](https://github.com/andhart/bijou)
  - [Chota](https://github.com/jenil/chota)

